package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootZnx;
import org.footballmanager.pandafootball.system.form.impl.FootZnxSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootZnxService extends BaseService<FootZnx> {
	/**
	 * 发送站内信
	 * @param sender
	 * @param reciver
	 * @param content
	 * @param logo
	 * @param url
	 */
	void sendZnx(Long sender, Long reciver, String content, Long logo, String url, HttpServletRequest request);
	
	/**
	 * 根据用户主键查找所有对应的站内信信息
	 * @param userId
	 * @return
	 */
	List<FootZnx> findZnxsByUserId(Long userId);

	/**
	 * 根据用户主键标记所有站内信为已读
	 * @param userId
	 */
	void readAll(Long userId, HttpServletRequest request);

    /**
     * 翻页方法
     * @param footZnxSearchForm 条件
     * @return 列表
     */
    List<FootZnx> findall(FootZnxSearchForm footZnxSearchForm);

    /**
     * 读取站内信
     * @param id 站内信主键
     * @param request 请求
     * @return 成功或失败
     */
    String znxyd(Long id, HttpServletRequest request);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footZnxSearchForm 条件
     */
    void search(String entityname, Model map, FootZnxSearchForm footZnxSearchForm);

    /**
     * 删除所有
     * @param footZnxSearchForm 条件
     * @param request 请求
     */
    void deleteAll(FootZnxSearchForm footZnxSearchForm, HttpServletRequest request);

    /**
     * 设置站内信状态为已读
     * @param id 站内信主键
     * @param request 请求
     * @return 站内信实体
     */
    FootZnx read(Long id, HttpServletRequest request);
}